#include <stdio.h>
#include <stdlib.h>

void display(int (*a)[3]);

int main()
{
    int a[][3] = {{15, 38, -52}, {-97, -85, 88}, {331, 457, -56}};
    display(&a[0]); // 等效display(a);
    system("pause");
    return 0;
}
void display(int (*a)[3])
{
    int i, j;
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
            printf("%5d", a[i][j]);
        printf("\n");
    }
    printf("\n");
}

/*

与直接用二维数组作为函数参数不同，
用指针作为函数参数则需要让指针指向二维数组的首地址。

对于二维数组a，因为已经使用a或者&a[0]代表一维数组，
所以再使用a或者&a[0]代表二维数组时，编译系统会给出警告。

虽然不会出错，但建议采用正确的做法，即使用“a[0]”或者“&a[0][0]”的形式。
对于多维数组也可同样处理。


*/